home *** CD-ROM | disk | FTP | other *** search
- XCOMM platform: $Xorg: FreeBSD.cf,v 1.3 2000/08/17 19:41:45 cpqbld Exp $
- XCOMM platform: $XdotOrg: xc/config/cf/FreeBSD.cf,v 1.10 2004/08/15 00:03:36 anholt Exp $
- XCOMM
- XCOMM
- XCOMM
- XCOMM platform: $XFree86: xc/config/cf/FreeBSD.cf,v 3.147 2004/01/28 01:46:21 dawes Exp $
-
- #ifndef UseElfFormat
- #define UseElfFormat DefaultToElfFormat
- #endif
-
- #if UseElfFormat
- #define OSBinaryFormat [ELF]
- #else
- #define OSBinaryFormat [a.out]
- #endif
-
- #ifndef OSName
- #define OSName DefaultOSName OSBinaryFormat
- #endif
- #ifndef OSVendor
- #define OSVendor /**/
- #endif
- #ifndef OSMajorVersion
- #define OSMajorVersion DefaultOSMajorVersion
- #endif
- #ifndef OSMinorVersion
- #define OSMinorVersion DefaultOSMinorVersion
- #endif
- #ifndef OSTeenyVersion
- #define OSTeenyVersion DefaultOSTeenyVersion
- #endif
-
- #ifndef OSRelVersion
- /* Include this to get finer-grained information about the OS version */
- #include "/usr/include/osreldate.h"
- #define OSRelVersion __FreeBSD_version
- #endif
-
- XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) (OSRelVersion)
-
-
- #define HasCplusplus YES
- #define GccUsesGas YES
- #define UseGas YES
- #define GnuCpp YES
- #define HasNdbm YES
- #define HasPutenv YES
- #define HasSnprintf YES
- #if OSMajorVersion == 3 && OSMinorVersion >= 3 || OSMajorVersion > 3
- # define HasStrlcat YES
- #endif
- #if OSMajorVersion == 4 && OSMinorVersion >= 2 || OSMajorVersion > 4
- # define HasBasename YES
- #else
- # define HasBasename NO
- #endif
- #define HasBSD44Sockets YES
- #define HasDlopen YES
- #if ((OSRelVersion >= 410002) && OSRelVersion < 500000) || (OSRelVersion >= 500012)
- #define HasSetProcTitle YES
- #endif
- #ifndef HasLibCrypt
- # define HasLibCrypt YES
- #endif
- #ifndef HasShm
- # define HasShm YES
- #endif
- #define HasWChar32 YES
- #define HasUsableFileMmap YES
- #define HasNCurses YES
- #define HasVarRun YES
- #define HasVarDb YES
- #ifndef BuildPDFdocs
- # define BuildPDFdocs NO
- #endif
- #if (OSMajorVersion >= 3)
- #define HasIssetugid YES
- #define HasPoll YES
- #endif
-
- #if OSMajorVersion >= 4
- #define HasGetIfAddrs YES
- #endif
-
- /* All versions define AF_INET6. 3.x and earlier don't have IPv6 support. */
- #if OSMajorVersion < 4
- #ifndef BuildIPv6
- #define BuildIPv6 NO
- #endif
- #endif
-
- #define IPv6SocketsAlsoIPv4 NO
-
- #if (OSMajorVersion > 1)
- #define InstallXloadSetGID NO
- #else
- #define InstallXloadSetGID YES
- #endif
-
- #define HasWeakSymbols UseElfFormat
-
- /*
- * Multi-thread safe libs
- */
- /* 2.2.7 and later has libc_r (POSIX threads) */
- #if OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 7 || \
- OSMajorVersion >= 3
- # define HasPosixThreads YES
- # define ThreadedX YES
- # define HasThreadSafeAPI YES
- # if OSRelVersion < 501000
- # define MTSafeAPIDefines -DXUSE_MTSAFE_API -DXNO_MTSAFE_PWDAPI
- # else
- # define MTSafeAPIDefines -DXUSE_MTSAFE_API
- # endif
- # if (OSRelVersion < 500043)
- # define NeedUIThrStubs YES
- # endif
- # if (OSRelVersion >= 502102)
- # define ThreadsLibraries -lpthread
- # elif (OSRelVersion >= 500016)
- # define ThreadsLibraries -lc_r
- # else
- # define ThreadsLibraries -pthread
- # endif
- # define SystemMTDefines -D_THREAD_SAFE
- #endif
-
- /* This fixes linking C programs against libGLU on FreeBSD 3.x */
- #if (OSMajorVersion == 3)
- #define SharedGLUReqs $(LDPRELIB) $(XLIB) $(GLXLIB) -lstdc++ -lgcc
- #endif
-
- #define AvoidNullMakeCommand YES
- #define StripInstalledPrograms YES
- #define CompressAllFonts YES
- #define Malloc0ReturnsNull YES
- #define NeedConstPrototypes YES
- #define NeedFunctionPrototypes YES
- #define NeedNestedPrototypes YES
- #define NeedVarargsPrototypes YES
- #define NeedWidePrototypes NO
-
- #define HasPlugin YES
- #define VendorHasX11R6_3libXext YES /* XC or XFree86 >= 3.3.1 */
-
- #define MkdirHierCmd mkdir -p
-
- #ifndef LexCmd
- #define LexCmd flex -l
- #endif
- #ifndef HasFlex
- #define HasFlex YES
- #endif
-
- #ifndef HasMktemp
- #if (OSMajorVersion >= 4) || (OSMajorVersion == 3 && OSMinorVersion >= 1) || \
- (OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 7)
- #define HasMktemp YES
- #else
- #define HasMktemp NO
- #endif
- #endif
-
- /*
- * 2.2.x has perl 4 by default, not perl 5.
- */
- #if (OSMajorVersion <= 2)
- #ifndef HasPerl5
- #define HasPerl5 NO
- #endif
- #endif
-
- #ifndef CcCmd
- #define CcCmd cc
- #endif
- #ifndef CplusplusCmd
- #define CplusplusCmd c++
- #endif
- #define CppCmd /usr/bin/cpp
- #define PreProcessCmd CppCmd
- #define StandardCppOptions -traditional
- #define StandardCppDefines /**/
- #ifndef DefaultCCOptions
- #if defined(UseInstalled)
- #define DefaultCCOptions /**/
- #else
- #if defined(HasGcc3) && HasGcc3
- #define NoSystemWarn -Wno-system-headers
- #else
- #define NoSystemWarn
- #endif
- #define DefaultCCOptions -ansi -pedantic NoSystemWarn -Dasm=__asm \
- GccWarningOptions
- #endif
- #endif
- #ifndef ExtraLibraries
- /* support for multi-byte locales is in libxpg4 rather than libc */
- #if (OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)) && \
- !(OSMajorVersion == 4 && OSRelVersion >= 400020) && \
- !(OSRelVersion >= 500005)
- #define ExtraLibraries -lxpg4
- #else
- #define ExtraLibraries /**/
- #endif
- #endif
- #ifndef UseGnuMalloc
- /* 2.2 doesn't really have GnuMalloc */
- #if OSMajorVersion < 2 || (OSMajorVersion == 2 && OSMinorVersion < 2)
- #define UseGnuMalloc YES
- #else
- #define UseGnuMalloc NO
- #endif
- #endif
- /* 2.2.2 and later has setusercontext() */
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 2) || \
- (OSMajorVersion == 2 && OSMinorVersion == 2 && OSTeenyVersion >= 2)
- #define HasSetUserContext YES
- #endif
-
- #if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 6)
- #define HasGetpeereid YES
- #endif
-
- /* 3.3(?) and later has support for setting MTRRs */
- #ifndef HasMTRRSupport
- #if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion >= 3)
- #define HasMTRRSupport YES
- #else
- #define HasMTRRSupport NO
- #endif
- #endif
-
- /*
- * Drivers that don't need AGP can work with 4.0, but we don't have a
- * mechanism for specifying a subset of drivers in the OS.cf files yet.
- */
- #ifndef BuildXF86DRI
- #if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1)
- #define BuildXF86DRI YES
- #endif
- #endif
-
- /*
- * 4.1/i386 and 5.0/i386,alpha,ia64,amd64 have the AGP driver.
- */
- #ifndef HasAgpGart
- #if defined(i386Architecture) && \
- (OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1))
- #define HasAgpGart YES
- #endif
- #if (defined(AlphaArchitecture) || defined(ia64Architecture) || \
- defined(AMD64Architecture)) && (OSMajorVersion >= 5)
- #define HasAgpGart YES
- #endif
- #endif
-
- /*
- * SSE and 3DNow will be autodetected, so binutils is the only
- * requirement for enabling this. By 4.2 they were all supported.
- */
- #if defined(AMD64Architecture) || defined(i386Architecture) && \
- (OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 2))
- # define HasX86Support YES
- # define HasMMXSupport YES
- # define Has3DNowSupport YES
- # define HasSSESupport YES
- #else
- # define HasX86Support NO
- # define HasMMXSupport NO
- # define Has3DNowSupport NO
- # define HasSSESupport NO
- #endif
-
- /*
- * This doesn't work the way it does on every other system. On FreeBSD it's
- * only a "hint, not a demand", whatever that means. Note that this is not
- * what it says in the ld and ld.so man pages, which are rather vague on the
- * matter.
- *
- * But we do know that if a) you do what the X Project team does and set your
- * ProjectRoot to something like "/X11", and b) you have other X libraries,
- * e.g. in /usr/X11R6/lib, and you have added /usr/X11R6/lib to your
- * ld.so.cache with ldconfig, then any programs linked with this "hint" will
- * find that ld.so ignores the "hint" at runtime and loads the libraries in
- * the ld.so.cache, i.e.the wrong ones, instead! Empirically we find that
- * the run-path is only used as a last resort to find the libraries, after
- * the LD_LIBRARY_PATH and ld.so.cache.
- *
- * N. B. to FreeBSD users who are not familiar with the semantics of the run-
- * path on other systems. The run-path is akin to a per-program ld.so.cache.
- * If a program is linked with a run-path, that run-path should take
- * precedence over _everything_ else! In my opinion ldconfig and the
- * ld.so.cache should be deprecated immediately now that FreeBSD has run-
- * paths. Any program that needs libraries that are outside the "well known"
- * locations should be linked with a run-path.
- *
- * All of which begs the question: If this option doesn't work in any useful
- * way, why did they (FreeBSD) bother to add it? It would be nice if FreeBSD
- * would fix ld.so so that run-paths are truly useful.
- *
- * Using run-paths is added with the intent that vendors who ship X for
- * FreeBSD should use it too. Once everyone uses it then there will be no
- * reason for FreeBSD to assume that it knows where X libraries are installed
- * and they can remove it from the list of directories they add to ld.so.cache
- * in their /etc/rc file.
- */
-
- #ifndef UseRpath
- # define UseRpath YES
- #endif
-
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 2)
-
- # ifndef RpathLoadFlags
- # if UseRpath
- # if UseElfFormat
- # define RpathLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
- # else
- # define RpathLoadFlags -Wl,-R,$(USRLIBDIRPATH)
- # endif
- # else
- # define RpathLoadFlags /**/
- # endif
- # endif
-
- # ifndef ExtraLoadFlags
- # if UseElfFormat && !defined(UseInstalled)
- # define ExtraLoadFlags RpathLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)
- # else
- # define ExtraLoadFlags RpathLoadFlags
- # endif
- # endif
-
- #endif
-
- #ifndef LibraryRpathLoadFlags
- # if UseRpath
- # if UseElfFormat
- # define LibraryRpathLoadFlags -rpath $(USRLIBDIRPATH)
- # else
- # define LibraryRpathLoadFlags -R $(USRLIBDIRPATH)
- # endif
- # else
- # define LibraryRpathLoadFlags /**/
- # endif
- #endif
-
- #ifndef SharedLibraryLoadFlags
- # if UseElfFormat
- # define SharedLibraryLoadFlags -shared LibraryRpathLoadFlags
- # else
- # define SharedLibraryLoadFlags -Bshareable LibraryRpathLoadFlags
- # endif
- #endif
-
- #ifndef GnuMallocLibrary
- #define GnuMallocLibrary -lgnumalloc
- #endif
-
- #if (OSMajorVersion > 2) || (OSMajorVersion == 2 && OSMinorVersion >= 2) \
- || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 6)
- /* 2.1.6 and 2.2 have libz */
- #ifndef HasZlib
- #define HasZlib YES
- #endif
- #endif
-
- /* PAM appeared in FreeBSD 3.1 */
- #if (OSMajorVersion > 3) || (OSMajorVersion == 3 && OSMinorVersion >=1 )
- #ifndef HasPam
- #define HasPam YES
- #endif
- #endif
-
- /* There are two options for building. One is to assume that the system has
- * many of the dependencies provided by the ports tree. The other is to just
- * build everything from this tree.
- */
-
- #ifndef HasStandardPorts
- #define HasStandardPorts YES
- #endif
-
- #ifndef LocalBase
- #define LocalBase /usr/local
- #endif
- #ifndef X11Base
- #define X11Base /usr/X11R6
- #endif
-
- #if HasStandardPorts
-
- #ifndef HasExpat
- # define HasExpat YES
- # define ExpatDir LocalBase
- #endif
-
- #ifndef HasFreetype2
- # define HasFreetype2 YES
- # define Freetype2Dir LocalBase
- #endif
-
- #ifndef HasFontconfig
- # define HasFontconfig YES
- # define FontconfigDir X11Base
- #endif
-
- #ifndef HasLibpng
- # define HasLibpng YES
- # define LibpngDir LocalBase
- #endif
-
- #endif /* HasStandardPorts */
-
- #undef InstallCmd
- #define InstallCmd /usr/bin/install
-
- #if UseElfFormat
- # define AsmElfDefines -D__ELF__
- #else
- # define AsmElfDefines /**/
- #endif
-
- #if GccUsesGas
- # define GccGasOption -DGCCUSESGAS
- # define AsmDefines -DUSE_GAS AsmElfDefines
- #else
- # define GccGasOption /**/
- # define AsmDefines AsmElfDefines
- #endif
-
- #ifdef i386Architecture
- #define ServerExtraDefines GccGasOption XFree86ServerDefines
- #endif
- #if defined(AlphaArchitecture) || defined(Sparc64Architecture) || \
- defined(ia64Architecture) || defined(AMD64Architecture)
- #define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
- #endif
- #ifdef Sparc64Architecture
- #define AsVISOption -Av9a
- #define AsOutputArchSize 64
- #endif
-
- #define StandardDefines -DCSRG_BASED
-
- #if OSMajorVersion > 1
- #define ServerOSDefines XFree86ServerOSDefines -DDDXTIME
- #define XawI18nDefines -DUSE_XWCHAR_STRING
- #define HasMakefileSafeInclude YES
- #define IncludeMakefile(file) @@# dependencies are in .depend
- #define DependFileName .depend
- #ifndef DoLoadableServer
- #define DoLoadableServer YES
- #endif
- #ifndef ForceNormalLib
- #define ForceNormalLib YES
- #endif
- #define HasMkstemp YES
- #else
- #define ServerOSDefines XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
- #define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC
- #endif
-
- /* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */
- #ifndef DefaultGcc2i386Opt
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5)
- #define DefaultGcc2i386Opt -O2 GccAliasingArgs
- #endif
- #endif
-
- #ifdef i386Architecture
- # define OptimizedCDebugFlags DefaultGcc2i386Opt
- #else
- # define OptimizedCDebugFlags -O
- #endif
-
- #ifndef PreIncDir
- # define PreIncDir /usr/include
- #endif
-
- #define HasGroff YES
- #define NroffCmd env GROFF_NO_SGR=y groff -Tascii
- #define SetTtyGroup YES
-
- #ifndef ExtraFilesToClean
- # define ExtraFilesToClean *.core
- #endif
-
- #define DefaultUserPath /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR):/usr/gnu/bin:/usr/local/bin
- #define DefaultSystemPath /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR)
- #ifndef SystemManDirectory
- #define SystemManDirectory /usr/share/man
- #endif
-
- #define InstKmemFlags -g kmem -m 2755
-
- /*
- * Compress manual pages
- */
- #ifndef CompressManPages
- # define CompressManPages YES
- #endif
-
- #if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 1)
- #define HasBsdMake YES
- #endif
-
- #ifndef StaticLibrary
- #define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic
- #endif
-
- #if UseElfFormat
- #define DlLibrary -rdynamic
- #else
- #define DlLibrary /**/
- #endif
-
- #ifdef AlphaArchitecture
- #define IoLibrary -lio
- #else
- #define IoLibrary /**/
- #endif
-
- #define ServerExtraSysLibs IoLibrary
-
- #ifndef PamLibraries
- #define PamLibraries -lpam DlLibrary
- #endif
-
- #ifndef SharedLibXdmGreet
- # define SharedLibXdmGreet NO
- #endif
-
- /*
- * On FreeBSD, the run-time loader will use the built-in "rpath" before
- * LD_LIBRARY_PATH. This means that utilities like mkfontdir will load
- * installed libraries (if they exist) in preference to the ones in the
- * build tree, even though LD_LIBRARY_PATH points to the build tree.
- * This can result in the build failing. One way to avoid this is to
- * pre-load the libraries from the build tree.
- *
- * There should be a better way than this hack...
- */
- #if UseElfFormat
- #ifndef PreloadFontSetup
- #define PreloadFontSetup LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(XFONTPRELOADPATTERN))`"
- #endif
- #ifndef PreloadFreetypeSetup
- #define PreloadFreetypeSetup LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(FT2PRELOADPATTERN))`"
- #endif
- #ifndef PreloadXFTSetup
- #define PreloadXFTSetup LD_PRELOAD="`(cd $(XENVLIBDIR); echo $(FT2PRELOADPATTERN) $(XFTPRELOADPATTERN) $(XRENDERPRELOADPATTERN) $(FCPRELOADPATTERN))`"
- #endif
- #endif
-
- #ifndef HasCookieMaker
- /* Which versions have /dev/urandom? */
- #if OSMajorVersion >= 4
- #define HasCookieMaker YES
- #define MkCookieCmd \
- 'dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"'
- #else
- #define HasCookieMaker NO
- #endif
- #endif
-
- /*
- * A hack to work around an optimization problem with gcc 2.95.2 - 2.95.4
- */
- #if (GccMajorVersion == 2 && GccMinorVersion == 95)
- #define GccOptBug295
- #endif
-
- #include <bsdLib.rules>
-
- #include <xorg.cf>
-